perm filename GEOMED[G,BGB]1 blob sn#020194 filedate 1973-01-15 generic text, type T, neo UTF8
00100	TITLE GEOMED  -  GEOMETRIC EDITOR  -  JANUARY 1973.
00200	
00300	COMMENT/	CONTENTS:
00400	
00500		1. START, REENTER, GEOMED TOP LISTEN LOOP.
00600		2. GEOMETRIC EDITOR STATE VECTOR.
00700		3. TELETYPE COMMAND JUMP TABLE.
00800		4. STATE DISPLAY.
00900	
01000	/
01100		EXTERN WORLD
01200	;EDITOR STATE.
01300	
01400		PDLPTR:	IOWD 100,PADPDL
01500		PADPDL:	BLOCK 100
01800	
01900		DECLARE{CHR,CTRL,META,ALPHA,BETA,EPSILN}
02000		DECLARE{TDEL,DDEL,RDEL}
02100		DECLARE{OPERAT,FRAME,FRMORG,AXECNT,ITERAT}
     

00100	;INITIALIZATION FOR STAND ALONE GEOMED.---------------------------
00200		OPDEF PPIOT[702B8]
00300		PDL: BLOCK 100
00400	
00500	;START ADDRESS
00600	SA:	JFCL
00700		CALL(CREAT1)	;CREATION TYPE-1.
00800	
00900	;RE-ENTRY ADDRESS.
01000	REE:	LACI .↔DAC 124
01100		PPIOT 2,-=250↔PPIOT 3,3003
01200		LAC 17,[IOWD 100,PDL]
01300		CALL(GEOMED)
01400		CALLI 12
01500	;1/12/73----------------------------------------------------------
01600	
01700	SUBR(GEOMED)------------------------------------------------------
01800	BEGIN GEOMED;GEOMETRIC EDITOR TOP LISTEN LOOP - BGB - 1/12/73.
01900	
02000	L:	CALL(STADPY)
02100		CALL(TTY)
02200		GO L
02300	
02400	BEND;1/12/73------------------------------------------------------
02500	
02600	SUBR(DPYSUB)------------------------------------------------------
02700	BEGIN DPYSUB;GEOMED DISPLAY REFRESH SUBROUTINE - BGB - 1/15/73.
02800		POP0J
02900	BEND;1/12/73------------------------------------------------------
     

00100	SUBR(CREAT1)------------------------------------------------------
00200	BEGIN CREAT1;CREATION OF THE UNIVERSE TYPE-1.
00300	;BGB - 13 JANUARY 1973.
00400		CALL(MORCOR)
00500		SETQ(WORLD,{MAKE,[0]})
00600		LAC 2,UNIVERSE↔DAP 1,-2(2)	;REALITY WORLD MODEL.
00700		DIP 1,1↔DAC 1,-3(1)		;EMPTY BODY RING.
00800		LAC[ASCII/REALI/]↔DAC 4(1)
00900		LAC[ASCIZ/TY/]↔DAC 5(1)
01000		POP0J
01100	BEND;1/13/73------------------------------------------------------
     

00100	SUBR(STADPY)------------------------------------------------------
00200	BEGIN STADPY;STATUS DISPLAY - BGB - 1/12/73
00300		CALL(DPYSET,DPYBUF)
00400		CALL(AIVECT,[-=511],[-=384])
00500		CALL(AVECT,[ =511],[-=384])
00600		CALL(AVECT,[ =511],[ =384])
00700		CALL(AVECT,[-=511],[ =384])
00800		CALL(AVECT,[-=511],[-=384])
00900		CALL(DPYOUT,[0])
01000		POP0J
01100	BEND;1/12/73------------------------------------------------------
     

00100	SUBR(TTY)---------------------------------------------------------
00200	BEGIN TTY;CAREYE TELETYPE COMMAND JUMP TABLE  -BGB-  NOVEMBER 1972.
00300	L0:	CRLF
00400	L1:	OUTCHR["*"]
00500	L2:	INCHRW
00600		SETZM CTRL↔TRZE 200↔SETOM CTRL
00700		SETZM META↔TRZE 400↔SETOM META
00800		CAIN 0,15↔GO L2
00900		CAIN 0,12↔GO L1
01000		DAC 0,CHR
01100	
01200	;READ JUMP TABLE.
01300		DAC 0,1
01400		CAIG 0,140↔GO[LAC 1,A00(1)↔GO L3]
01500		CAIG 0,172↔GO[LAC 1,A00-40(1)↔GO L3]
01600		LAC 1,A173-173(1)
01700	L3:	PUSHJ P,(1)↔GO L2↔GO L0
01800		LIT
01900	BEND;1/12/73------------------------------------------------------
02000	
02100	NOP:	OUTCHR CHR↔CRLF↔POP0J
     

00100	;ASCII 00 TO 37--------------------------------------------------
00200	
00300	A00:	NOP   ;null.
00400		NOP   ;"↓"
00500		NOP   ;"α"
00600		NOP   ;"β"
00700	
00800		NOP   ;"∧"
00900		NOP   ;"¬"
01000		NOP   ;"ε"
01100		NOP   ;"π"
01200	
01300		NOP   ;"λ"
01400		NOP   ;TAB.
01500		NOP   ;LF.
01600		NOP   ;VT.
01700	
01800		NOP   ;FF.
01900		NOP   ;CR.
02000		NOP   ;"∞"
02100		NOP   ;"∂"
02200	
02300		NOP   ;"⊂"
02400		NOP   ;"⊃"
02500		NOP   ;"∩"
02600		NOP   ;"∪"
02700	
02800		NOP   ;"∀"
02900		NOP   ;"∃"
03000		NOP   ;"⊗"
03100		NOP   ;"↔"
03200	
03300		NOP   ;"_"
03400		NOP   ;"→"
03500		NOP   ;TILDE
03600		NOP   ;"≠"
03700	
03800		NOP   ;"≤"
03900		NOP   ;"≥"
04000		NOP   ;"≡"
04100		NOP   ;"∨"
04200	
04300	;----------------------------------------------------------------
     

00100	;ASCII 40 TO 100-------------------------------------------------
00200	
00300		NOP   ;SPACE
00400		NOP   ;"!"
00500		NOP   ;"""
00600		NOP   ;"#"
00700	
00800		NOP   ;"$"
00900		NOP   ;"%"
01000		NOP   ;"&"
01100		NOP   ;"'"
01200	
01300		EUTRAN;"("	EUCLIDEAN TRANSFORMATION -Y.
01400		EUTRAN;")"	EUCLIDEAN TRANSFORMATION +Y.
01500		EUTRAN;"*"	EUCLIDEAN TRANSFORMATION +Z.
01600		NOP   ;"+"
01700	
01800		NOP   ;","
01900		EUTRAN;"-"	EUCLIDEAN TRANSFORMATION -Z.
02000		NOP   ;"."
02100		NOP   ;"/"
02200	
02300		NOP   ;"0"
02400		NOP   ;"1"
02500		NOP   ;"2"
02600		NOP   ;"3"
02700	
02800		NOP   ;"4"
02900		NOP   ;"5"
03000		NOP   ;"6"
03100		NOP   ;"7"
03200	
03300		NOP   ;"8"
03400		NOP   ;"9"
03500		EUTRAN;":"	EUCLIDEAN TRANSFORMATION -X.
03600		EUTRAN;";"	EUCLIDEAN TRANSFORMATION +X.
03700	
03800		NOP   ;"<"
03900		NOP   ;"="
04000		NOP   ;">"
04100		NOP   ;"?"
04200	
04300		NOP   ;"@"
04400	
04500	;----------------------------------------------------------------
     

00100	;ASCII 101 TO 132 UPPER CASE-------------------------------------
00200	;ASCII 141 TO 172 LOWER CASE.
00300	
00400	A101:	NOP   ;"A"
00500		NOP   ;"B"
00600		NOP   ;"C"
00700		NOP   ;"D"
00800	
00900		SWIRE ;"E"
01000		NOP   ;"F"
01100		NOP   ;"G"
01200		NOP   ;"H"
01300	
01400		NOP   ;"I"
01500		NOP   ;"J"
01600		NOP   ;"K"
01700		NOP   ;"L"
01800	
01900		NOP   ;"M"
02000		NOP   ;"N"
02100		NOP   ;"O"
02200		NOP   ;"P"
02300	
02400		NOP   ;"Q"
02500		NOP   ;"R"
02600		NOP   ;"S"
02700		NOP   ;"T"
02800	
02900		NOP   ;"U"
03000		VBODY ;"V" MAKE VERTEX BODY.
03100		NOP   ;"W"
03200		NOP   ;"X"
03300	
03400		NOP   ;"Y"
03500		NOP   ;"Z"
03600	
03700	;ASCII 133 TO 140.
03800		NOP   ;"["
03900		NOP   ;"\"
04000		NOP   ;"]"
04100		NOP   ;"↑"
04200		NOP   ;"←"
04300		NOP   ;"`"
04400	
04500	;ASCII 173 TO 177.
04600	A173:	NOP   ;"{"
04700		NOP   ;"|"
04800		NOP   ;ALTMODE
04900		NOP   ;"}"
05000		NOP   ;RUBOUT
05100	
05200	;----------------------------------------------------------------